﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using Acamps.Framework;
using Acamps.Framework.NegocioRegras;

namespace Acamps.Web.NegocioWeb
{
    public class AcessoWeb
    {
        private Negocio _negocio;
        private EventoNegocio _acampamentoNegocio;
        private CampistaNegocio _campistaNegocio;
        private EstadoCivilNegocio _estadoCivilNegocio;
        private TipoAcampsNegocio _tipoAcampsNegocio;
        private TipoSanguineoNegocio _tipoSanguineoNegocio;
        private LocalNegocio _local;
        private LivroVisitasNegocio _livroVisitas;
        private LoginNegocio _loginNegocio;
        private FichasNegocio _fichasNegocio;
        private TipoParticipacaoNegocio _tipoParticipacao;
        private NewsletterEvangelhoNegocio _newsletterEvangelhoNegocio;
        private EvangelhoNegocio _evangelhoNegocio;
        private FuncaoNegocio _funcaoNegocio;
        private TriboNegocio _triboNegocio;

        public string StringConexao
        {
            get { return ConfigurationManager.ConnectionStrings["StringConexao"].ConnectionString; }
        }

       private Negocio NegocioWeb
        {
            get
            {
                if (_negocio == null) _negocio = new Negocio(StringConexao);
                return _negocio;
            }
        }

       public LoginNegocio LoginNegocioWeb
       {
           get
           {
               if (_loginNegocio == null)
               {
                   _loginNegocio = NegocioWeb.LoginNegocio;
               }
               return _loginNegocio;
           }
       }


        public EventoNegocio AcampamentoNegocioWeb
        {
            get
            {
                if(_acampamentoNegocio == null)
                {
                    _acampamentoNegocio = NegocioWeb.Acampamento;
                }
                return _acampamentoNegocio;
            }
        }

        public LivroVisitasNegocio LivroVisitasNegocioWeb
        {
            get
            {
                if (_livroVisitas == null)
                {
                    _livroVisitas = NegocioWeb.LivroVisitas;
                }
                return _livroVisitas;
            }
        }

        public CampistaNegocio CampistaNegocioWeb
        {
            get
            {
                if (_campistaNegocio == null)
                {
                    _campistaNegocio = NegocioWeb.Campista;
                }
                return _campistaNegocio;
            }
        }

        public EstadoCivilNegocio EstadoCivilNegocioWeb
        {
            get
            {
                if (_estadoCivilNegocio == null)
                {
                    _estadoCivilNegocio = NegocioWeb.EstadoCivil;
                }
                return _estadoCivilNegocio;
            }
        }

        public TipoAcampsNegocio TipoAcampsNegocioWeb
        {
            get
            {
                if (_tipoAcampsNegocio == null)
                {
                    _tipoAcampsNegocio = NegocioWeb.TipoAcamps;
                }
                return _tipoAcampsNegocio;
            }
        }

        public TipoSanguineoNegocio TipoSanguineoNegocioWeb
        {
            get
            {
                if (_tipoSanguineoNegocio == null)
                {
                    _tipoSanguineoNegocio = NegocioWeb.TipoSanguineo;
                }
                return _tipoSanguineoNegocio;
            }
        }

        public LocalNegocio LocalNegocioWeb
        {
            get
            {
                if (_local == null)
                {
                    _local = NegocioWeb.Local;
                }
                return _local;
            }
        }

        public FichasNegocio FichasNegocioWeb
        {
            get
            {
                if (_fichasNegocio == null)
                {
                    _fichasNegocio = NegocioWeb.FichasNegocio;
                }
                return _fichasNegocio;
            }
        }

        public TipoParticipacaoNegocio TipoParticipacaoNegocioWeb
        {
            get
            {
                if (_tipoParticipacao == null)
                {
                    _tipoParticipacao = NegocioWeb.TipoParticipacao;
                }
                return _tipoParticipacao;
            }
        }

        public NewsletterEvangelhoNegocio NewsletterEvangelhoNegocioWeb
        {
            get
            {
                if (_newsletterEvangelhoNegocio == null)
                {
                    _newsletterEvangelhoNegocio = NegocioWeb.NewsletterEvangelhoNegocio;
                }
                return _newsletterEvangelhoNegocio;
            }
        }

        public EvangelhoNegocio EvangelhoNegocioWeb
        {
            get
            {
                if (_evangelhoNegocio == null)
                {
                    _evangelhoNegocio = NegocioWeb.EvangelhoNegocio;
                }
                return _evangelhoNegocio;
            }
        }

        public FuncaoNegocio FuncaoNegocioWeb
        {
            get
            {
                if (_funcaoNegocio == null)
                {
                    _funcaoNegocio = NegocioWeb.FuncaoNegocio;
                }
                return _funcaoNegocio;
            }
        }

        public TriboNegocio TriboNegocioWeb
        {
            get
            {
                if (_triboNegocio == null)
                {
                    _triboNegocio = NegocioWeb.TriboNegocio;
                }
                return _triboNegocio;
            }
        }
    }
}